██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Model-view-viewmodel
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Il mwbwModel–View–ViewModel (mwcaMVVM) è uno mwcqschema di progettazione del mwcgsoftware, e una variante del "Presentation Model design" di mwcwMartin Fowler.
MVVM astrae lo stato di "view" (visualizzazione) e il comportamento. Mentre il modello di "presentazione" astrae una vista (crea un view model) in una maniera che non dipende da una specifica piattaforma mwdqinterfaccia utente. Lo MVVM fu sviluppato da Ken Cooper e Ted Peters di mwdgMicrosoft per semplificare la mwdwprogrammazione a eventi di interfacce utente sfruttando caratteristiche del mweaframework mweqWPF e della piattaforma mwegSilverlight. Il pattern architetturale fu presentato per la prima volta nel blog di John Gossman nel 2005.
Contents
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Componenti del pattern
• mwfwModel (modello): Il modello in MVVM è una implementazione del modello di dominio (mwgadomain model) della applicazione che include un modello di dati insieme con la mwgqlogica di business e di validazione. Esempi di oggetti del modello comprendono repository, oggetti di business, oggetti di trasferimento dei dati (DTOs), Plain Old CLR Objects (pocos), e oggetti generati di entità e proxy.cite-ref-0-1-0[1]
• mwhwView (vista): La vista è responsabile della definizione della struttura, il layout e l'aspetto di ciò che l'utente vede sullo schermo. Idealmente, la vista è definita esclusivamente con XAML, con un numero limitato di code-behind che non contiene la logica di business.cite-ref-0-1-1[1]
• mwjqView Model (modello della vista): Il mwjgview model fa da intermediario tra la vista e il modello, ed è responsabile per la gestione della logica della vista. In genere, il mwjwview model interagisce con il modello invocando metodi nelle classi del modello. Il mwkaview model fornisce quindi i dati dal modello in una forma che la vista può usare facilmente.cite-ref-0-1-2[1]
• mwlgBinder (legante): Il meccanismo fondamentale per questo pattern con il quale il mwlwview model e la mwmaview vengono costantemente mantenuti sincronizzati, tipicamente tramite una sintassi dichiarativa all'interno della mwmqview stessa. Questo implica che le modifiche ai dati apportate dall'utente attraverso la mwmgview verranno automaticamente riportate nel mwmwview model, senza che questo onere spetti allo sviluppatore. Allo stesso modo, eventuali modifiche apportate ai dati contenuti nel mwnaview model verranno automaticamente rappresentate nella mwnqview.
Note
cite-note-0-11. ↑ mwqamwqqmwqgThe MVVM Pattern, su mwqwmsdn.microsoft.com. mwraURL consultato l'11 marzo 2016.
Voci correlate
Collegamenti esterni
• mwta(EN) How to implement MVVM (Model-View-ViewModel) in TDD (test-driven development), su Microsoft Developer Network, Microsoft. URL consultato il 4 gennaio 2016 (archiviato dall'url originale il 15 aprile 2019).
• mwtg(EN) mwtwMVVM validation logic, written in Java by Tim Clare
• mwuq(EN) Understanding MVVM: A Guide for JavaScript Developers, su AddysOnmani.com.